package br.ufes.ceunes.poo.model.dao;

import br.ufes.ceunes.poo.model.pojo.Fornecedor;
import br.ufes.ceunes.poo.model.pojo.Produto;
import br.ufes.ceunes.poo.util.JPAUtil;
import java.io.Serializable;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;

public class FornecedorDAO implements DAOGenerico<Fornecedor, Integer> {

    @Override
    public void salvar(Fornecedor objeto) {
        EntityManager em = JPAUtil.getInstance().getEntityManager();
        EntityTransaction tx = JPAUtil.getInstance().getTransaction(em);
        em.persist(objeto);
        tx.commit();
        em.close();
    }

    @Override
    public void remover(Fornecedor objeto) {
        EntityManager em = JPAUtil.getInstance().getEntityManager();
    }

    @Override
    public List<Fornecedor> listar() {
                EntityManager em = JPAUtil.getInstance().getEntityManager();
        Query query = em.createQuery("select f from Fornecedor f",Fornecedor.class);
        return query.getResultList();
    }

    @Override
    public Fornecedor buscarPorId(Integer id) {
        EntityManager em = JPAUtil.getInstance().getEntityManager();
        Query q = em.createQuery("select p from Produto p where p.id like :id",
                Fornecedor.class);
        q.setParameter("id", id);
        return (Fornecedor) q.getSingleResult();
    }
    
    public List<Fornecedor> buscaPorNome(String nome) {
        EntityManager em = JPAUtil.getInstance().getEntityManager();
        Query query = em.createQuery("select produto from Produto produto where"
                + " produto.nome like '%" + nome + "%'", Produto.class);
        List result = query.getResultList();
        em.close();
        return result;
    }
}
